library(tidyverse)
library(reshape2)
library(lubridate)
library(forcats)
library(vistime)
temp_illustration <- data.frame(bucket = c("x < 62.8", "62.8 <= x < 71.3", "71.3 <= x < 79.8", "79.8 >= x > 85", "x >= 85"),
name = c("xcool_days", "cool_days", "normal_days", "hot_days", "xhot_days"),
start = c("32-01-01", "62-09-18", "71-03-18", "79-09-18", "85-01-01"),
end = c("62-09-18", "71-03-18", "79-09-18", "85-01-01", "100-01-01"),
color = c("cyan", "blue", "yellow", "orange", "red"),
optimize_y = TRUE)
vistime(temp_illustration, groups = "name", events = "bucket", title = "Temperature buckets")
temps_df %>%
group_by(ride_name) %>%
ggplot() +
geom_col(aes(x = ride_name, y = mean_wait, fill = fct_relevel(temp_cat, temp_list_names)), position = "dodge") +
scale_fill_manual(values = temp_colors) +
coord_flip() +
labs(fill = "Temp cat") +
theme(legend.justification=c(1,1), legend.position=c(1,1)) +
labs(title = "Mean estimated wait time for each ride at a temperature", fill = "Temperature") +
ylab("Mean wait (minutes)") +
xlab("Ride")

temps_df %>%
inner_join(ride_metadata) %>%
filter(splash == TRUE) %>%
group_by(ride_name) %>%
ggplot() +
geom_col(aes(x = ride_name, y = mean_wait, fill = fct_relevel(temp_cat, temp_list_names)), position = "dodge") +
scale_fill_manual(values = temp_colors) +
coord_flip() +
labs(fill = "Temp cat") +
theme(legend.justification=c(1,1), legend.position=c(1,1)) +
labs(title = "Mean estimated wait for rides with a splash feature at a temperature", fill = "Temperature") +
ylab("Mean wait (minutes)") +
xlab("Ride")
Joining, by = "ride_name"
Column `ride_name` joining factors with different levels, coercing to character vector

temps_df %>%
inner_join(ride_metadata) %>%
filter(indoor == TRUE) %>%
group_by(ride_name) %>%
ggplot() +
geom_col(aes(x = ride_name, y = mean_wait, fill = fct_relevel(temp_cat, temp_list_names)), position = "dodge") +
scale_fill_manual(values = temp_colors) +
coord_flip() +
labs(fill = "Temp cat") +
theme(legend.justification=c(1,1), legend.position=c(1,1)) +
labs(title = "Mean estimated wait time for indoor rides at a temperature", fill = "Temperature") +
ylab("Mean wait (minutes)") +
xlab("Ride")
Joining, by = "ride_name"
Column `ride_name` joining factors with different levels, coercing to character vector
temps_df %>%
inner_join(ride_metadata) %>%
filter(splash == TRUE & indoor == TRUE) %>%
group_by(ride_name) %>%
ggplot() +
geom_col(aes(x = ride_name, y = mean_wait, fill = fct_relevel(temp_cat, temp_list_names)), position = "dodge") +
scale_fill_manual(values = temp_colors) +
coord_flip() +
labs(fill = "Temp cat") +
theme(legend.justification=c(1,1), legend.position=c(1,1)) +
labs(title = "Mean estimated wait time for indoor + splash rides at a temperature", fill = "Temperature") +
ylab("Mean wait (minutes)") +
xlab("Ride")


LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKYGBge3J9CmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KHJlc2hhcGUyKQpsaWJyYXJ5KGx1YnJpZGF0ZSkKbGlicmFyeShmb3JjYXRzKQpsaWJyYXJ5KHZpc3RpbWUpCmBgYAoKCmBgYHtyfQp0ZW1wX2lsbHVzdHJhdGlvbiA8LSBkYXRhLmZyYW1lKGJ1Y2tldCA9IGMoInggPCA2Mi44IiwgIjYyLjggPD0geCA8IDcxLjMiLCAiNzEuMyA8PSB4IDwgNzkuOCIsICI3OS44ID49IHggPiA4NSIsICJ4ID49IDg1IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGMoInhjb29sX2RheXMiLCAiY29vbF9kYXlzIiwgIm5vcm1hbF9kYXlzIiwgImhvdF9kYXlzIiwgInhob3RfZGF5cyIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gYygiMzItMDEtMDEiLCAiNjItMDktMTgiLCAiNzEtMDMtMTgiLCAiNzktMDktMTgiLCAiODUtMDEtMDEiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQgPSBjKCI2Mi0wOS0xOCIsICI3MS0wMy0xOCIsICI3OS0wOS0xOCIsICI4NS0wMS0wMSIsICIxMDAtMDEtMDEiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvciA9IGMoImN5YW4iLCAiYmx1ZSIsICJ5ZWxsb3ciLCAib3JhbmdlIiwgInJlZCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGltaXplX3kgPSBUUlVFKQoKCnZpc3RpbWUodGVtcF9pbGx1c3RyYXRpb24sIGdyb3VwcyA9ICJuYW1lIiwgZXZlbnRzID0gImJ1Y2tldCIsIHRpdGxlID0gIlRlbXBlcmF0dXJlIGJ1Y2tldHMiKQpgYGAKCgpgYGB7cn0KdGVtcHNfZGYgJT4lCiAgZ3JvdXBfYnkocmlkZV9uYW1lKSAlPiUKICBnZ3Bsb3QoKSArCiAgZ2VvbV9jb2woYWVzKHggPSByaWRlX25hbWUsIHkgPSBtZWFuX3dhaXQsIGZpbGwgPSBmY3RfcmVsZXZlbCh0ZW1wX2NhdCwgdGVtcF9saXN0X25hbWVzKSksIHBvc2l0aW9uID0gImRvZGdlIikgKwogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IHRlbXBfY29sb3JzKSArCiAgY29vcmRfZmxpcCgpICsKICBsYWJzKGZpbGwgPSAiVGVtcCBjYXQiKSArCiAgdGhlbWUobGVnZW5kLmp1c3RpZmljYXRpb249YygxLDEpLCBsZWdlbmQucG9zaXRpb249YygxLDEpKSArCiAgbGFicyh0aXRsZSA9ICJNZWFuIGVzdGltYXRlZCB3YWl0IHRpbWUgZm9yIGVhY2ggcmlkZSBhdCBhIHRlbXBlcmF0dXJlIiwgZmlsbCA9ICJUZW1wZXJhdHVyZSIpICsKICB5bGFiKCJNZWFuIHdhaXQgKG1pbnV0ZXMpIikgKwogIHhsYWIoIlJpZGUiKQpgYGAKCgpgYGB7cn0KdGVtcHNfZGYgJT4lCiAgaW5uZXJfam9pbihyaWRlX21ldGFkYXRhKSAlPiUKICBmaWx0ZXIoc3BsYXNoID09IFRSVUUpICU+JQogIGdyb3VwX2J5KHJpZGVfbmFtZSkgJT4lCiAgZ2dwbG90KCkgKwogIGdlb21fY29sKGFlcyh4ID0gcmlkZV9uYW1lLCB5ID0gbWVhbl93YWl0LCBmaWxsID0gZmN0X3JlbGV2ZWwodGVtcF9jYXQsIHRlbXBfbGlzdF9uYW1lcykpLCBwb3NpdGlvbiA9ICJkb2RnZSIpICsKICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSB0ZW1wX2NvbG9ycykgKwogIGNvb3JkX2ZsaXAoKSArCiAgbGFicyhmaWxsID0gIlRlbXAgY2F0IikgKwogIHRoZW1lKGxlZ2VuZC5qdXN0aWZpY2F0aW9uPWMoMSwxKSwgbGVnZW5kLnBvc2l0aW9uPWMoMSwxKSkgKwogIGxhYnModGl0bGUgPSAiTWVhbiBlc3RpbWF0ZWQgd2FpdCBmb3IgcmlkZXMgd2l0aCBhIHNwbGFzaCBmZWF0dXJlIGF0IGEgdGVtcGVyYXR1cmUiLCBmaWxsID0gIlRlbXBlcmF0dXJlIikgKwogIHlsYWIoIk1lYW4gd2FpdCAobWludXRlcykiKSArCiAgeGxhYigiUmlkZSIpCmBgYAoKCmBgYHtyfQp0ZW1wc19kZiAlPiUKICBpbm5lcl9qb2luKHJpZGVfbWV0YWRhdGEpICU+JQogIGZpbHRlcihpbmRvb3IgPT0gVFJVRSkgJT4lCiAgZ3JvdXBfYnkocmlkZV9uYW1lKSAlPiUKICBnZ3Bsb3QoKSArCiAgZ2VvbV9jb2woYWVzKHggPSByaWRlX25hbWUsIHkgPSBtZWFuX3dhaXQsIGZpbGwgPSBmY3RfcmVsZXZlbCh0ZW1wX2NhdCwgdGVtcF9saXN0X25hbWVzKSksIHBvc2l0aW9uID0gImRvZGdlIikgKwogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IHRlbXBfY29sb3JzKSArCiAgY29vcmRfZmxpcCgpICsKICBsYWJzKGZpbGwgPSAiVGVtcCBjYXQiKSArCiAgdGhlbWUobGVnZW5kLmp1c3RpZmljYXRpb249YygxLDEpLCBsZWdlbmQucG9zaXRpb249YygxLDEpKSArCiAgbGFicyh0aXRsZSA9ICJNZWFuIGVzdGltYXRlZCB3YWl0IHRpbWUgZm9yIGluZG9vciByaWRlcyBhdCBhIHRlbXBlcmF0dXJlIiwgZmlsbCA9ICJUZW1wZXJhdHVyZSIpICsKICB5bGFiKCJNZWFuIHdhaXQgKG1pbnV0ZXMpIikgKwogIHhsYWIoIlJpZGUiKQpgYGAKCgpgYGB7cn0KdGVtcHNfZGYgJT4lCiAgaW5uZXJfam9pbihyaWRlX21ldGFkYXRhKSAlPiUKICBmaWx0ZXIoc3BsYXNoID09IFRSVUUgJiBpbmRvb3IgPT0gVFJVRSkgJT4lCiAgZ3JvdXBfYnkocmlkZV9uYW1lKSAlPiUKICBnZ3Bsb3QoKSArCiAgZ2VvbV9jb2woYWVzKHggPSByaWRlX25hbWUsIHkgPSBtZWFuX3dhaXQsIGZpbGwgPSBmY3RfcmVsZXZlbCh0ZW1wX2NhdCwgdGVtcF9saXN0X25hbWVzKSksIHBvc2l0aW9uID0gImRvZGdlIikgKwogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IHRlbXBfY29sb3JzKSArCiAgY29vcmRfZmxpcCgpICsKICBsYWJzKGZpbGwgPSAiVGVtcCBjYXQiKSArCiAgdGhlbWUobGVnZW5kLmp1c3RpZmljYXRpb249YygxLDEpLCBsZWdlbmQucG9zaXRpb249YygxLDEpKSArCiAgbGFicyh0aXRsZSA9ICJNZWFuIGVzdGltYXRlZCB3YWl0IHRpbWUgZm9yIGluZG9vciArIHNwbGFzaCByaWRlcyBhdCBhIHRlbXBlcmF0dXJlIiwgZmlsbCA9ICJUZW1wZXJhdHVyZSIpICsKICB5bGFiKCJNZWFuIHdhaXQgKG1pbnV0ZXMpIikgKwogIHhsYWIoIlJpZGUiKQpgYGAKCg==